package com.ruoyi.OutboundManagement.mapper;

import java.util.List;
import com.ruoyi.OutboundManagement  .domain.DeliveryOperation;
import com.ruoyi.OutboundManagement.domain.OtherOutbound;
import com.ruoyi.OutboundManagement.domain.vo.WarningVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 出库操作Mapper接口
 *
 * @author admin
 * @date 2024-07-09
 */
public interface DeliveryOperationMapper
{

    /**
     * 新增出库操作
     *
     * @param deliveryOperation 出库操作
     * @return 结果
     */
    public int insertDeliveryOperation(DeliveryOperation deliveryOperation);

    /**
     * 查询出库操作列表
     *
     * @param materialIds 出库操作
     * @return 出库操作集合
     */
    public List<DeliveryOperation> selectDeliveryOperationList(@Param("materialIds") List<Long> materialIds,@Param("materialName") String materialName);


    List<DeliveryOperation> selectLingLiao(String shippingType);

    List<DeliveryOperation> selectTuiHuo(String shippingType);

    List<DeliveryOperation> selectXiaoShou(String shippingType);

    List<DeliveryOperation> selectWaiCai(String shippingType);



    /**
     * 删除出库操作
     *
     * @param deliveryId 出库操作主键
     * @return 结果
     */
    public int deleteDeliveryOperationByDeliveryId(Long deliveryId);

    /**
     * 批量删除出库操作
     *
     * @param deliveryIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDeliveryOperationByDeliveryIds(Long[] deliveryIds);


    List<DeliveryOperation> findByZhijianList(@Param("zhijian")List<String> zhijian,@Param("libraryType")String libraryType,@Param("shippingType")String shippingType,@Param("materialName") String materialName,@Param("createUser") String createUser,@Param("storageStatus")String storageStatus);


    /**
     * 修改质检操作
     *
     * @param deliveryOperation 出库操作
     * @return 结果
     */
    public int updateDeliveryOperation(DeliveryOperation deliveryOperation);


    /**
     * 修改出库操作
     *
     * @param deliveryOperation 出库操作
     * @return 结果
     */
    int updateDeliveryChuKu(DeliveryOperation deliveryOperation);


    int XiuGaiChu(DeliveryOperation deliveryOperation);
    /**
     * 修改入库数量操作
     *
     * @param deliveryOperation 出库操作
     * @return 结果
     */
    int updateDeliveryRu(DeliveryOperation deliveryOperation);


    /**
     * 修改出库数量操作
     *
     * @param deliveryOperation 出库操作
     * @return 结果
     */
    int updateDeliveryChu(DeliveryOperation deliveryOperation);


    List<DeliveryOperation> selectRuTotal(DeliveryOperation deliveryOperation);

    List<WarningVO> selectWarning(WarningVO warningVO);
}

